<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 考试： -->

    <!-- 主考Vue，注意createApp跟import和export啥的 -->

    <!-- 1.vue的响应式原理
     Vue 的响应式核心是数据劫持。通过Object.defineProperty（Vue2）或Proxy（Vue3）劫持数据的getter/setter。组件渲染时，触发getter，
     进行依赖收集，将当前Watcher（组件渲染函数）存入Dep（依赖收集器）。数据变更时，触发setter,通知Dep通知所有Watcher执行异步更新，从
     而触发组件重新渲染，实现数据到视图的自动同步 -->
    <!-- 简洁版
     Vue 响应式核心是数据劫持。通过 Vue2 的Object.defineProperty或 Vue3 的Proxy劫持数据，触发 getter 时收集 Watcher 依赖，触发 
     setter 时由 Dep 通知 Watcher 异步更新组件，实现数据与视图的自动同步。 -->

    <!-- 2.ts的配置文件（某一项）是什么意思 -->
</head>

<body>
    <!-- npm init -v 快捷下载
     documentById
     innerHTML
     监听事件->在homework/otherhome/homework11里面
     -->

    <!-- vue -->
    <!-- npm install vue 

     下组件的指令(STRONG重点要背)
     npm create vite@latest (括号里包括括号取名字) -- --template vue

     npm run dev启动组件-->
    <!-- v-bind指令，用来绑定属性的值，简化为: 
      v-on指令，搞函数的，触发方法调用，简化为@
      v-show指令，不找干嘛的
      v-if还有v-for
      -->
</body>
<!-- 在 Vue 考试中，选择题和填空题的基础考点主要集中在 Vue 2 和 Vue 3 的核心概念、语法规则、API 使用、生命周期、响应式原理等基础内容上，其中 Vue 3 的组合式 API（Composition API）是近年考试的重点。以下按模块分类梳理高频基础考点，涵盖选择 / 填空的核心出题方向：

一、Vue 基础概念与核心特性（必考）
这类考点主要考察对 Vue 核心设计思想和基础概念的理解，多为填空题（填概念）和选择题（选特性 / 描述）。
Vue 的核心特性
填空题：Vue 的核心是数据驱动和组件化；Vue 是一套渐进式JavaScript 框架（填 “渐进式”）。
选择题：判断 “渐进式框架” 的含义（逐步集成核心库、路由、状态管理等，而非一次性引入所有功能）；区分数据驱动和 DOM 操作的差异。
MVVM 模型
填空题：MVVM 分别指Model（数据模型）、View（视图）、ViewModel（视图模型，Vue 实例充当）。
选择题：ViewModel 的作用（连接 Model 和 View，实现数据双向绑定）；MVVM 与 MVC 的区别（如 MVC 中 Controller 负责逻辑，MVVM 中 ViewModel 替代）。
插值表达式
填空题：Vue 模板中使用 **{{}}（双大括号）进行插值，用于渲染数据；插值表达式中不能写语句 **（如 if/for），只能写表达式。
选择题：判断插值表达式的合法写法（如 {{ name }} 合法，{{ if (age>18) }} 非法）；v-text/v-html 与插值表达式的区别（v-html 可渲染 HTML 标签，存在 XSS 风险）。

二、指令系统（高频考点）
Vue 的指令是模板语法的核心，考试中常以选择（选指令功能 / 用法）、** 填空（填指令名）** 形式出现，重点考察常用指令的作用和使用场景。
基础指令
指令	考点方向（填空 / 选择）
v-bind	绑定属性，缩写为 **:**；可绑定动态属性（如 :class/:style）
v-on	绑定事件，缩写为 **@**；事件修饰符（如 .stop 阻止冒泡、.prevent 阻止默认行为）
v-model	实现双向数据绑定，仅适用于表单元素（input/select/textarea 等）；修饰符（.trim 去空格、.number 转数字）
v-if/v-else	条件渲染（销毁 / 创建DOM）；与 v-show 的区别（v-show 是切换 display，适合频繁切换）
v-for	列表渲染，必须绑定key（推荐用唯一标识，如 id，而非 index）；v-for 与 v-if 同节点时v-for 优先级更高（Vue 2）
其他常用指令
填空题：v-once 指令的作用是只渲染一次，数据更新后不重新渲染；v-cloak 用于解决插值表达式闪烁问题。
选择题：判断 v-pre 的作用（跳过编译，直接显示原始内容）；v-for 循环对象时的参数顺序（(value, key, index)）。

三、组件化开发（核心考点）
组件是 Vue 的核心设计思想，基础考点集中在组件的定义、传参、注册等，是选择 / 填空的高频出题点。
组件的注册
填空题：Vue 组件分为全局注册（Vue.component()）和局部注册（在组件的 components 选项中声明）；Vue 3 中用 defineComponent 定义组件（组合式 API）。
选择题：全局注册与局部注册的区别（全局注册可在任意组件中使用，局部仅在当前组件中）；组件名的命名规范（kebab-case 短横线或 PascalCase 大驼峰）。
组件的传参
填空题：父组件向子组件传值用props；子组件向父组件传值用自定义事件（$emit）。
选择题：
props 的类型限制（如数组、对象，如 props: { age: Number }）；
props 是单向数据流（子组件不能直接修改父组件传递的 props）；
自定义事件的触发方式（子组件 this.$emit('eventName', data)，父组件 @eventName 接收）。
组件的插槽
填空题：基础插槽用 **<slot>标签；具名插槽的使用（v-slot:name 或缩写 #name）；作用域插槽用于子组件向父组件传递插槽数据 **。
选择题：判断插槽的使用场景（如组件内容需要自定义时用插槽）；作用域插槽的参数接收方式（如 <slot :data="list" />，父组件用 #default="scope" 接收）。

四、Vue 生命周期（必考）
生命周期是 Vue 实例 / 组件的核心流程，考试中常以填空（填生命周期钩子名）、** 选择（选钩子的执行时机 / 用途）** 形式出现，Vue 2 和 Vue 3 的生命周期差异是重点。
Vue 2 生命周期钩子
填空题：
实例创建阶段：beforeCreate（数据和方法未初始化）→ created（数据和方法初始化，DOM 未生成）；
挂载阶段：beforeMount（模板编译完成，未挂载到 DOM）→ mounted（DOM 挂载完成，可操作 DOM）；
更新阶段：beforeUpdate（数据更新，DOM 未重新渲染）→ updated（DOM 重新渲染完成）；
销毁阶段：beforeDestroy（实例未销毁，可清理定时器）→ destroyed（实例销毁，所有监听移除）。
选择题：
哪个钩子中可以发起 Ajax 请求（created/mounted）；
哪个钩子中可以操作 DOM（mounted）；
清理定时器 / 事件监听的最佳时机（beforeDestroy）。
Vue 3 生命周期的变化
填空题：Vue 3 组合式 API 中，mounted 对应的钩子函数是onMounted；beforeDestroy/destroyed 替换为onBeforeUnmount/onUnmounted。
选择题：Vue 3 选项式 API 与 Vue 2 生命周期的区别（仅销毁钩子改名，其余一致）；组合式 API 中生命周期钩子需从 vue 中导入后使用。

五、Vue 3 组合式 API（近年考试重点）
Vue 3 的组合式 API 是目前考试的核心，基础考点集中在 ref、reactive、setup 等核心 API，多为选择 / 填空。
setup 函数
填空题：setup 是 Vue 3 组合式 API 的入口；setup 的执行时机是组件创建前，beforeCreate 之前；setup 中不能使用 this（指向 undefined）。
选择题：setup 的返回值（对象，属性和方法可在模板中使用；也可返回渲染函数）；<script setup> 语法糖的作用（无需写 setup 函数，自动暴露变量 / 方法）。
响应式 API
填空题：
ref 用于创建基本类型的响应式数据，需通过value属性访问 / 修改；模板中自动解包，无需 .value。
reactive 用于创建对象 / 数组的响应式数据，无需 .value；但不能直接赋值整个对象（会丢失响应式）。
computed 用于创建计算属性，支持 getter/setter；watch 用于监听数据变化，可监听 ref/reactive 数据。
选择题：
ref 与 reactive 的区别（ref 支持基本类型，reactive 仅支持引用类型）；
computed 与方法的区别（计算属性有缓存，方法每次调用都执行）；
watch 监听 reactive 对象的某个属性时，需用函数返回值（如 watch(() => obj.name, () => {})）。
其他组合式 API
填空题：toRefs 的作用是将 reactive 对象的属性转为 ref 对象；provide/inject 用于跨组件传值（祖组件传值给后代组件）。
选择题：readonly 的作用（创建只读的响应式数据）；toRef 与 toRefs 的区别（toRef 转单个属性，toRefs 转所有属性）。

六、其他基础考点
过滤器（Vue 2）
填空题：Vue 2 中用filter定义过滤器；全局过滤器用 Vue.filter()，局部过滤器在组件的 filters 选项中声明。
选择题：Vue 3移除了过滤器，推荐用计算属性或方法替代；过滤器的使用方式（插值表达式中 {{ name | filterName }}，v-bind 中 :value="name | filterName"）。
全局 API 变化（Vue 3）
填空题：Vue 3 中 Vue.createApp() 替代 Vue 2 的 new Vue() 创建应用实例；全局方法（如 Vue.component）移到应用实例上（如 app.component()）。
选择题：Vue 3 全局 API 树摇优化的好处（减少打包体积，只引入使用的 API）。
路由基础（Vue Router）
填空题：Vue Router 中 **<router-link>用于导航（替代 a 标签）；<router-view>用于渲染匹配的路由组件；路由跳转的编程式导航用$router.push()**（Vue 2）/ useRouter()（Vue 3）。
选择题：路由参数的获取方式（动态路由参数用 $route.params，查询参数用 $route.query）；嵌套路由需在父组件中添加 <router-view>。

    七、考试答题技巧
填空题：重点记忆关键词 / 缩写 / 固定搭配（如 v-bind 缩写 :、ref 需 .value、生命周期钩子名）。
选择题：注意易混淆概念的区分（如 v-if vs v-show、ref vs reactive、props 单向数据流），排除明显错误选项后再分析。
Vue 2 vs Vue 3：重点关注差异点（如生命周期钩子改名、组合式 API、全局 API 变化），这是近年考试的高频出题方向。
以上考点覆盖了 Vue 基础选择 / 填空题的 90% 以上内容，掌握这些核心知识点，就能应对大部分基础题型的考察。-->

</html>